/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cidadeDAO;

import bean.Cidade;
import bean.Cliente;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import util.HibernateUtil;


/**
 *
 * @author Charles Gesser
 */
public class CidadeDAO {

    private final Session sessao;
    
    public CidadeDAO() {
        
        this.sessao = HibernateUtil.getSession();
        
    }
    
    public void inserCidade (Cidade cidade){
       
        Transaction tx_cidade = sessao.beginTransaction();
        sessao.saveOrUpdate(cidade);
        tx_cidade.commit();
        sessao.close();
        
    }
    
    public List todas_cidade(){
        
        Transaction tx_cidade = sessao.beginTransaction();
        List lista_cidadeLista = sessao.createQuery("from Cidade").list();
        sessao.close();
        return lista_cidadeLista;
        
    }
    
    public void excluiCidade (Cidade cidade){
        
        Transaction tx_cidade = sessao.beginTransaction();
        sessao.delete(cidade);
        tx_cidade.commit();
        sessao.close();
        
    }
    
   public Cidade buscarPorId(int id){
       return (Cidade)sessao.createCriteria(Cidade.class).list();
 
   
   } 
   public List<Cidade> buscarCidade(String nome){
       Query sql = sessao.createQuery("FROM Cidade p where cidNom like ?");
       sql.setString(0, "%"+nome+"%");
       return sql.list();
   }

   public List todas_clientes(){
        
        Transaction tx_cliente = sessao.beginTransaction();
        List lista_clienteLista = sessao.createQuery("from Cliente").list();
        JOptionPane.showMessageDialog(null, sessao);
        //sessaocli.close();
        return lista_clienteLista;
        
    }
    public void inserCliente (Cliente cliente){
        
        Transaction tx_cliente = sessao.beginTransaction();
        sessao.save(cliente);
        JOptionPane.showMessageDialog(null, cliente.getCliNom());
        tx_cliente.commit();
        JOptionPane.showMessageDialog(null, sessao);
        sessao.close();
        
    }
}
